<template>
  <!-- 巡检任务清单 -->
  <p-card :bordered="false">
    <!-- 查询区域 -->
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <p-form layout="inline" @keyup.enter.native="searchQuery">
        <p-row :gutter="24">
          <p-col :xl="6" :lg="6" :md="6" :sm="24">
            <p-form-item label="送检单号">
              <p-input placeholder="请输入送检单号" class="query-group" v-model="queryParam.inspectBillno"></p-input>
            </p-form-item>
          </p-col>
    
          <p-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <p-button type="primary" @click="searchQuery" icon="search">查询</p-button>
              <p-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</p-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <p-icon :type="toggleSearchStatus ? 'up' : 'down'" />
              </a>
            </span>
          </p-col>
        </p-row>
      </p-form>
    </div>
    <!-- 查询区域-END -->

    <!-- 操作按钮区域 -->
    <div class="table-operator">

      <template v-if="cgButtonList && cgButtonList.length>0" v-for="(item,index) in cgButtonList">
        <p-button v-if=" item.optType=='js' && (item.groupTag == null || item.groupTag == '' )" :key=" 'cgbtn'+index "
          @click="cgButtonJsHandler(item.buttonCode)" type="primary" :icon="item.buttonIcon">{{ item.buttonName }}
        </p-button>
        <p-button v-else-if=" item.optType=='action' && (item.groupTag == null || item.groupTag == '' )"
          :key=" 'cgbtn'+index " @click="cgButtonActionHandler(item.buttonCode)" type="primary" :icon="item.buttonIcon">
          {{ item.buttonName }}</p-button>
      </template>

      <!-- 高级查询区域 -->
      <j-super-query :fieldList="fieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>

      <p-dropdown v-for="(item,index) in groupTag" :key="index">
        <p-button>
          {{item.name}}
          <p-icon type="down" />
        </p-button>
        <p-menu slot="overlay">
          <template v-for="(items,indexs) in item.data">
            <p-menu-item v-if=" items.optType=='js' " :key="indexs" @click="cgButtonJsHandler(items.buttonCode)">
              <p-icon :type="items.buttonIcon" />{{items.buttonName}}
            </p-menu-item>
            <p-menu-item v-else-if=" items.optType=='action' " :key="indexs"
              @click="cgButtonActionHandler(items.buttonCode)">
              <p-icon :type="items.buttonIcon" />{{items.buttonName}}
            </p-menu-item>
          </template>
        </p-menu>
      </p-dropdown>

      <p-dropdown v-if="selectedRowKeys.length > 0">
        <p-menu slot="overlay">
          <p-menu-item key="1" @click="batchDel">
            <p-icon type="delete" />删除</p-menu-item>
        </p-menu>
        <p-button style="margin-left: 8px"> 批量操作
          <p-icon type="down" />
        </p-button>
      </p-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i>  <a
          style="font-weight: 600"></a>
        <a style="margin-left: 24px" @click="onClearSelected"></a>

        <span style="float:right;">
          <a @click="handleExportXls('巡检任务')">
            <p-icon type="download" />导出</a>
          <p-divider type="vertical" />
          <p-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
            :action="importExcelUrl" @change="handleImportExcel">
            <a>
              <p-icon type="import" />导入</a>
          </p-upload>
          <p-divider type="vertical" />
          <a @click="loadData()">
            <p-icon type="sync" />刷新</a>
          <p-divider type="vertical" />
          <p-popover title="自定义列" trigger="click" placement="leftBottom" :overlay-style="getWidth">
            <template slot="content">
              <p-checkbox-group @change="onColSettingsChange" v-model="settingColumns" :defaultValue="settingColumns">
                <p-row>
                  <template v-for="(item,index) in defColumns">
                    <template v-if="item.key!='rowIndex'&& item.dataIndex!='action'">
                      <p-col :span="12">
                        <p-checkbox :value="item.dataIndex">{{ item.title }}</p-checkbox>
                      </p-col>
                    </template>
                  </template>
                </p-row>
              </p-checkbox-group>
            </template>
            <a>
              <p-icon type="setting" />自定义列</a>
          </p-popover>
        </span>
      </div>

      <!-- 表格 -->
      <p-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :scroll="tableScroll"
        :dataSource="dataSource" :pagination="ipagination" :loading="loading"
               :customRow="clickThenSelect"
               :rowClassName="setRowClassName"
         @change="handleTableChange">

        <!-- 送检单号插槽 -->
        <template slot="inspectBillno" slot-scope="text,record">
          <a v-if="record.inspectStatus==1||record.inspectStatus==2||record.inspectStatus==5||record.inspectStatus==6" @click="changeOtherUrl(record)">
            {{text}}
          </a>
          <div v-else>{{text}}</div>
        </template>


        <!-- 检验状态插槽 -->
        <template slot="inspectStatus" slot-scope="text,record">

          <p-tag v-if="text==1"  ><p-icon type="question-circle" />待生成</p-tag>
          <p-tag v-else-if="text==2" color="blue" ><p-icon type="clock-circle" />待检</p-tag>
          <p-tag v-else-if="text==3" color="red"><p-icon type="close-circle" />未检</p-tag>
          <p-tag v-else-if="text==4" color="green"><p-icon type="check-circle" />检验完成</p-tag>
          <p-tag v-else-if="text==5" color="orange"><p-icon type="exclamation-circle" />待IPQC复核</p-tag>
          <p-tag v-else-if="text==6" color="cyan"><p-icon type="pause-circle" />待整改</p-tag>
        </template>


        <template slot="inspectResult" slot-scope="text,record">
          <!-- <div  :color="(record.status==3||record.status==4)?'red':'black'">{{ text }}</div>-->
          <!--<div v-if="!text" >/</div>
          <div v-else-if="text==1" >合格</div>
          <div v-else-if="text==2" style="color:red">不合格</div>-->
          <div v-if="!text" >/</div>

          <p-tag v-else-if="text==1" color="green"><p-icon type="check-circle" />合格</p-tag>
          <p-tag v-else-if="text==2" color="red"><p-icon type="close-circle" />不合格</p-tag>
        </template>

        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无此图片</span>
          <img v-else :src="getImgView(text)" height="25px" alt="图片不存在"
            style="max-width:80px;font-size: 12px;font-style: italic;" />
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无此文件</span>
          <p-button v-else :ghost="true" type="primary" icon="download" size="small" @click="uploadFile(text)">
            下载
          </p-button>
        </template>


      </p-table>
    </div>


    <p-drawer
            title="详情信息"
            placement="right"
            :width="980"
            :closable="false"
            :visible="drawerVisible"
            @close="drawerClose"
    >
      <p-divider orientation="left">
        主信息
      </p-divider>

      <p-descriptions bordered  size="small">
        <p-descriptions-item label="送检单号">
          {{this.baseInfoData.inspectBillno}}
        </p-descriptions-item>
        <p-descriptions-item label="工序工单">
          {{this.baseInfoData.processBillno}}
        </p-descriptions-item>
        <p-descriptions-item label="产品编号">
          {{this.baseInfoData.mcode}}
        </p-descriptions-item>
        <p-descriptions-item label="产品名称">
          {{this.baseInfoData.mname}}
        </p-descriptions-item>
        <p-descriptions-item label="二级工序">
          {{this.baseInfoData.processTwo}}
        </p-descriptions-item>
        <p-descriptions-item label="线体">
          {{this.baseInfoData.linename}}
        </p-descriptions-item>
        <p-descriptions-item label="送检时间">
          {{this.baseInfoData.sendTime}}
        </p-descriptions-item>
        <p-descriptions-item label="抽样方式">
          {{this.baseInfoData.simpleMethod}}
        </p-descriptions-item>
        <p-descriptions-item label="抽样数量">
          {{this.baseInfoData.simpleQty}}
        </p-descriptions-item>
        <p-descriptions-item label="检验时间">
          {{this.baseInfoData.inspectTime}}
        </p-descriptions-item>
        <p-descriptions-item label="检验人">
          {{this.baseInfoData.inspecter}}
        </p-descriptions-item>
      </p-descriptions>


      <p-divider orientation="left">
        更多信息
      </p-divider>

      <p-collapse v-model="activeKey">

        <p-collapse-panel v-if="baseInfoData.isPallet==1" key="1" header="检验项目">
          <p-table
                  :columns="modal1InspectionColumns"
                  :data-source="baseInfoData.mesQcTourinspLinemList"
                  class="components-table-demo-nested"
                  bordered
                  :expandIcon="expandIcon"
                  style="margin-top:10px;"
          >




           <!-- <a slot="photoUrl" slot-scope="text">photoUrl</a>-->
            <p-table
                    slot="expandedRowRender"
                    slot-scope="text"
                    :columns="modal1InspectionInnerColumns"
                    :data-source="text.mesQcTourinspProjectsList"
                    :pagination="false"

                    bordered
            >


              <template slot="photoUrl" slot-scope="text,record">
                <!-- <p-button type="primary" icon="upload" :disabled="reviewVisible" @click="openPhUpBtn2(record)" >上传</p-button>-->
                <p-divider type="vertical" v-if="record.photoUrl&&record.photoUrl!=''"/>
                <p-button v-if="record.photoUrl&&record.photoUrl!=''" type="primary" icon="eye" @click="openPhReviewBtn2(record)">预览</p-button>
              </template>
            </p-table>
          </p-table>


          <p-modal v-model="phUpVisible2" title="图片上传" @ok="phUpSave2" okText="保存更改">
            <j-upload v-model="currentDetailPhObj" :trigger-change="true" :ismultiSelect="false"></j-upload>
          </p-modal>

          <div>
            <p-modal v-model="dPhVisible" title="图片预览(非图片文件无法预览-需下载)" :footer="null" :width="1000">
              <img :src="dPhUrl" class="myImg"/>
            </p-modal>
          </div>





        </p-collapse-panel>

        <p-collapse-panel v-if="baseInfoData.isPallet==2" key="1" header="抽检SN明细">
          <p-table
                  :columns="simpleSNDetailColumns"
                  :data-source="baseInfoData.mesQcTourinspSnDetailList"
                  class="components-table-demo-nested"
                  bordered
                  style="margin-top:10px;"
          >


          </p-table>

        </p-collapse-panel>
        <p-collapse-panel v-if="baseInfoData.isPallet==2" key="2" header="检验项目">
          <p-table
                  :columns="checkProjectColumns"
                  :data-source="baseInfoData.mesQcTourinspProjectsList"
                  class="components-table-demo-nested"
                  bordered
                  style="margin-top:10px;"
          >
            <template slot="measuredValue" slot-scope="text,record">

            </template>

          </p-table>
        </p-collapse-panel>

      </p-collapse>



    </p-drawer>




    <mesQcTourInspectTask-modal ref="modalForm" :EnhanceJS="EnhanceJS" @ok="modalFormOk"></mesQcTourInspectTask-modal>
    <!-- 弹出窗 -->
    <Fx-compontens-modal @ok="modalFormOk" ref="modalCompon" :getList="queryInfo" :title="title"
      :dictOptions="dictOptions"></Fx-compontens-modal>
  </p-card>
</template>

<script>

  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { api } from '@/api/manage'
  import JSuperQuery from '@/components/jeecg/JSuperQuery.vue'
  import { filterObj } from '@/utils/util'
  import MesQcTourInspectTaskModal from './modules/MesQcTourInspectTaskModal'
  import Vue from 'vue'
  import MesQcTourinspProjectsList from './MesQcTourinspProjectsList'
  import MesQcTourinspSnDetailList from './MesQcTourinspSnDetailList'
  import MesQcTourinspProductDetailList from './MesQcTourinspProductDetailList'
  import { initDictOptions, filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  import ButtonExpHandler from '@/components/jeecgbiz/modules/ButtonExpHandler'
  import { postAction, getAction, deleteAction } from '@/api/manage'
  import FxCompontensModal from "@/components/jeecgbiz/FxCompontensModal"

  //高级查询modal需要参数
  const superQueryFieldList = [
    {
      value: 'inspectBillno',
      text: '送检单号',
      type: 'string'
    },
    {
      value: 'mcode',
      text: '产品编码',
      type: 'string'
    },
    {
      value: 'mname',
      text: '产品名称',
      type: 'string'
    },
    {
      value: 'processOne',
      text: '一级工序',
      type: 'string'
    },
    {
      value: 'processTwo',
      text: '二级工序',
      type: 'string'
    },
    {
      value: 'linename',
      text: '线体',
      type: 'string'
    },
    {
      value: 'processBillno',
      text: '工序工单',
      type: 'string'
    },
    {
      value: 'processChangesBillno',
      text: '工艺更改单单号',
      type: 'string'
    },
    {
      value: 'updateTime',
      text: '操作时间',
      type: 'Date'
    },
    {
      value: 'inspectTimes',
      text: '检验次数',
      type: 'int'
    },
    {
      value: 'inspectStatus',
      text: '检验状态',
      type: 'select',
      dictCode: 'mes-tour-inspect-type'
    },
    {
      value: 'inspectResult',
      text: '检验结果',
      type: 'select',
      dictCode: 'mes_is_qualified'
    },
    {
      value: 'sendTime',
      text: '送检时间',
      type: 'Date'
    },
    {
      value: 'triggerMethod',
      text: '触发方式',
      type: 'string'
    },
    {
      value: 'inspectFrequency',
      text: '检验频次',
      type: 'int'
    },
    {
      value: 'simpleMethod',
      text: '抽样方式',
      type: 'select',
      dictCode: 'rc_inspect_method'
    },
    {
      value: 'simpleQty',
      text: '抽样数量',
      type: 'string'
    },
    {
      value: 'taskTraggerTime',
      text: '任务触发时间',
      type: 'Date'
    },
    {
      value: 'reviewResult',
      text: '复核结果',
      type: 'select',
      dictCode: 'mes_review_result'
    },
    {
      value: 'changeCondition',
      text: '整改情况',
      type: 'string'
    },
    {
      value: 'sendDimension',
      text: '送检维度',
      type: 'String'
    },
  ]

  export default {
    name: "MesQcTourInspectTaskList",
    mixins: [JeecgListMixin],
    components: {
      JSuperQuery,
      MesQcTourinspProjectsList,
      MesQcTourinspSnDetailList,
      MesQcTourinspProductDetailList,
      FxCompontensModal,
      MesQcTourInspectTaskModal
    },
    props:['mqVisible','mqLoad','mqData'],
    data() {
      return {
        fieldList: superQueryFieldList,
        superQueryFlag: false,
        superQueryParams: '',
        description: '巡检任务管理页面',
        EnhanceJS: '',
        cgButtonLinkList: [],
        cgButtonList: [],
        title: '',//存表名
        groupTag: [],
        queryInfo: [],
        code: '',
        // 表头
        columns: [],
        //列设置
        settingColumns: [],
        phUpVisible2:false,
        reviewVisible:false,
        dPhVisible:false,
        dPhUrl:'',
        currentD:{},
        currentDetailPhObj:'',

        checkProjectColumns:[
          {
            title: "序号",
            dataIndex: "",
            key: "rowIndex",
            width: 60,
            align: "center",
            customRender: function (t, r, index) {
              return parseInt(index) + 1;
            },
          },
          { title: "工站", dataIndex: "workStation", key: "workStation" },
          { title: "检验项目", dataIndex: "inspectProject", key: "inspectProject" },
          { title: "检验标准", dataIndex: "inspectStatand", key: "inspectStatand" },
          { title: "值类型", dataIndex: "valueType", key: "valueType",
            customRender: (text) => {
              if (!text) {
                return "";
              } else {
                return text==1?'计数型':'计量型';
              }
            },
          },
          { title: "标准值", dataIndex: "standardValue", key: "standardValue", scopedSlots: { customRender: "standardValue" }, },
          {
            title: "上限值",
            dataIndex: "upperValue",
            key: "upperValue",
            scopedSlots: { customRender: "upperValue" },
          },
          { title: "下限值", dataIndex: "downValue", key: "downValue" , scopedSlots: { customRender: "downValue" },},

          {
            title: "实测值",
            dataIndex: "measuredValue",
            key: "measuredValue",
            scopedSlots: { customRender: "measuredValue" },
          },
          {
            title: "单项判定",
            dataIndex: "individualJudgment",
            key: "individualJudgment",
            customRender: (text) => {
              if (!text) {
                return "";
              } else {
                return text==1?'PASS':'NG';
              }
            },
          },


        ],

        modal1InspectionColumns: [
          {
            title: "序号",
            dataIndex: "key",
            customRender: function (t, r, index) {
              return parseInt(index) + 1;
            },
          },
          { title: "线号/组件编号", dataIndex: "lineBillno", key: "lineBillno" },
          { title: "物料编码", dataIndex: "mcode", key: "mcode" },
          { title: "物料名称", dataIndex: "mname", key: "mname" },
          { title: "物料一级分类", dataIndex: "productOneType", key: "productOneType" },
          { title: "物料二级分类", dataIndex: "productTwoType", key: "productTwoType" },
          { title: "物料三级分类", dataIndex: "productThreeType", key: "productThreeType" },

          { title: "检验结果",
            dataIndex: "inspectResult",
            key: "inspectResult",
            customRender: (text) => {
              if (!text) {
                return "";
              } else {
                return text==1?'合格':'不合格';
              }
            },
          },

        ],

        simpleSNDetailColumns:[
          {
            title: "序号",
            dataIndex: "",
            key: "rowIndex",
            width: 60,
            align: "center",
            customRender: function (t, r, index) {
              return parseInt(index) + 1;
            },
          },
          {
            title: "SN",
            dataIndex: "sn",
          },
          {
            title: "检验项目",
            dataIndex: "inspectProjectId",

          },
          {
            title: "图片",
            dataIndex: "photoUrl",
          },
          {
            title: "备注",
            dataIndex: "remark",
          },

        ],

        modal1InspectionInnerColumns: [
          {
            title: "序号",
            dataIndex: "key",
            customRender: function (t, r, index) {
              return parseInt(index) + 1;
            },

          },
          { title: "检验项目", dataIndex: "inspectProject", key: "inspectProject" },
          {
            title: "检验标准",
            dataIndex: "inpectStandard",
            key: "inpectStandard",
          },
          {
            title: "值类型",
            key: "valueType",
            customRender: (text) => {
              if (!text) {
                return "";
              } else {
                return text==1?'计数型':'计量型';
              }
            },
          },
          { title: "标准值", dataIndex: "standardValue", key: "standardValue" },
          {
            title: "上限值",
            dataIndex: "upperValue",
            key: "upperValue",

          },
          { title: "下限值", dataIndex: "downValue", key: "downValue" },
          { title: "参数", dataIndex: "param", key: "param" },
          {
            title: "实测值",
            dataIndex: "measuredValue",
            key: "measuredValue",
          },
          {
            title: "单项判定",
            dataIndex: "individualJudgment",
            key: "individualJudgment",
            customRender: (text) => {
              if (!text) {
                return "";
              } else {
                return text==1?'PASS':'NG';
              }
            },
          },
          {
            title: "图片",
            dataIndex: "photoUrl",
            key: "photoUrl",
            scopedSlots: { customRender: "photoUrl" },
          },
      ],

        baseInfoData:{},
        drawerVisible:false,
        activeKey:['1'],
        rowId:0,

        //列定义
        defColumns: [
          {
            title: "序号",
            dataIndex: "",
            key: "rowIndex",
            width: 60,
            align: "center",
            customRender: function (t, r, index) {
              return parseInt(index) + 1;
            },
          },
          {
            title: '送检单号',
            align: 'center',
            dataIndex: 'inspectBillno',
            scopedSlots: { customRender: "inspectBillno" },/*添加插槽*/
          },
          {
            title: '产品编码',
            align: 'center',
            dataIndex: 'mcode',
          },
          {
            title: '产品名称',
            align: 'center',
            dataIndex: 'mname',
          },
          {
            title: '一级工序',
            align: 'center',
            dataIndex: 'processOne',
          },
          {
            title: '二级工序',
            align: 'center',
            dataIndex: 'processTwo',
          },
          {
            title: '线体',
            align: 'center',
            dataIndex: 'linename',
          },
          {
            title: '工序工单',
            align: 'center',
            dataIndex: 'processBillno',
          },
          {
            title: '工艺更改单单号',
            align: 'center',
            dataIndex: 'processChangesBillno',
          },
          {
            title: '操作时间',
            align: 'center',
            dataIndex: 'updateTime',
          },
          {
            title: '检验次数',
            align: 'center',
            dataIndex: 'inspectTimes',
          },
          {
            title: '检验状态',
            align: 'center',
            dataIndex: 'inspectStatus',
            scopedSlots: { customRender: "inspectStatus" },/*添加插槽*/
          },
          {
            title: "检验结果",
            align: "center",
            dataIndex: "inspectResult",
            scopedSlots: { customRender: "inspectResult" },
          },


        ],
        url: {
          list: '/mes-quality/mesQcTourInspectTask/list',
          delete: '/mes-quality/mesQcTourInspectTask/delete',
          deleteBatch: '/mes-quality/mesQcTourInspectTask/deleteBatch',
          exportXlsUrl: '/mes-quality/mesQcTourInspectTask/exportXls',
          importExcelUrl: '/mes-quality/mesQcTourInspectTask/importExcel',
          getColumns: '/mes-quality/online/cgform/api/getColumns/',
          buttonAction: '/mes-quality/online/cgform/api/doButton',
        },
        dictOptions: {
          inspectStatus: [],//检验状态
          inspectResult: [],//检验结果
        },
        /* 分页参数 */
        ipagination: {
          current: 1,
          pageSize: 10,
          pageSizeOptions: ['10', '20', '50'],
          showTotal: (total, range) => {
            return range[0] + "-" + range[1] + " 共" + total + "条"
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0
        },
        selectedMainId: ''

      }
    },
    computed: {
      importExcelUrl: function () {
        return `${api.test}${this.url.importExcelUrl}`;
      },
      getWidth: function () {
        if (this.defColumns.length > 14) {
          return { width: '500px' }
        }
      },
      newSelectedMainId: function () {
        if (typeof (this.selectedMainId) == 'number') {
          return this.selectedMainId.toString()
        } else {
          return this.selectedMainId
        }
      },
      tableScroll: function () {
        if (this.columns.length > 13) {
          return { x: this.columns.length * 150 - 450 }
        }
      }
    },


    created() {
      this.initButtonList();
      this.initColumns();
      this.setdefColumns();
    },
    // 待生成	1	~跳转到《生成巡检待检任务》
    // 待检	2	~跳转到《巡检操作》
    // 未检	3	
    // 检验完成	4	
    // 待IPQC复核	5	~跳转到《IPQC复核操作》
    // 待整改	6

    methods: {
      changeOtherUrl(record) {/* 单号对应数据库的主键标识列id,检验状态 */

        /* if (inspectStatus == 1) {/!* 跳转到 生成巡检待检任务 *!/
           this.$router.push({ path: `/work/auto/modules/MesQcTourinspectGenerate/${id}` });
         } else if (inspectStatus == 2) {/!*跳转到 巡检操作 *!/
           this.$router.push({ path: `/work/auto/MesQcTourInspectOperation/${id}` });
         } else if (inspectStatus == 5) {/!*跳转到 IPQC复核操作 *!/
           this.$router.push({ path: `/work/auto/MesQcTourInspectReview/${id}` });
         }*/

        let id = record.id;
        let inspectStatus = record.inspectStatus;
        let isPallet = record.isPallet;
        let mqData = this.mqData;
        switch (inspectStatus) {
          case 1:
            this.$emit('update:mqVisible', 2);
            this.$emit('update:mqLoad', this.mqLoad);
            mqData.id = id;
            mqData.inspectStatus = inspectStatus;
            this.$emit('update:mqData', mqData);
            /*this.$router.push({path:"/work/auto/modules/MesQcTourinspectGenerate",query:{id:id,inspectStatus:inspectStatus}})*/
            break;
          case 2:
            this.$emit('update:mqVisible', 3);
            this.$emit('update:mqLoad', this.mqLoad);
            mqData.id = id;
            mqData.isPallet = isPallet;
            this.$emit('update:mqData', mqData);
            /*this.$router.push({path:"/work/auto/MesQcTourInspectOperation",query:{id:id,isPallet:isPallet}})*/
            break;
          case 5:
            this.$emit('update:mqVisible', 4);
            this.$emit('update:mqLoad', this.mqLoad);
            mqData.id = id;
            mqData.isPallet = isPallet;
            this.$emit('update:mqData', mqData);
            /*this.$router.push({path:"/work/auto/MesQcTourInspectReview",query:{id:id,isPallet:isPallet}})*/
            break;
          case 6:
            this.$emit('update:mqVisible', 3);
            this.$emit('update:mqLoad', this.mqLoad);
            mqData.id = id;
            mqData.isPallet = isPallet;
            this.$emit('update:mqData', mqData);
            /*this.$router.push({path:"/work/auto/MesQcTourInspectOperation",query:{id:id,isPallet:isPallet}})*/
            break;
        }


      },

      setdefColumns() {
        if (this.columns.length > 13) {
          let arrLength = this.columns.length - 1
          this.columns.forEach((item, index) => {
            item["width"] = 130
          })
          this.columns[arrLength]['fixed'] = 'right'
          this.columns[0]['fixed'] = 'left'
          this.columns[1]['fixed'] = 'left'
        }
      },
      initColumns() {
        //权限过滤（列权限控制时打开，修改第二个参数为授权码前缀）
        //this.defColumns = colAuthFilter(this.defColumns,'testdemo:');

        var key = this.$route.name + ":colsettings";
        let colSettings = Vue.ls.get(key);
        if (colSettings == null || colSettings == undefined) {
          let allSettingColumns = [];
          this.defColumns.forEach(function (item, i, array) {
            allSettingColumns.push(item.dataIndex);
          })
          this.settingColumns = allSettingColumns;
          this.columns = this.defColumns;
        } else {
          this.settingColumns = colSettings;
          const cols = this.defColumns.filter(item => {
            if (item.key == 'rowIndex' || item.dataIndex == 'action') {
              return true;
            }
            if (colSettings.includes(item.dataIndex)) {
              return true;
            }
            return false;
          })
          this.columns = cols;
        }
      },


      drawerClose(){
        this.drawerVisible=false;
        this.activeKey=['1'];
      },


      //列设置更改事件
      onColSettingsChange(checkedValues) {
        var key = this.$route.name + ":colsettings";
        Vue.ls.set(key, checkedValues, 7 * 24 * 60 * 60 * 1000)
        this.settingColumns = checkedValues;
        const cols = this.defColumns.filter(item => {
          if (item.key == 'rowIndex' || item.dataIndex == 'action') {
            return true
          }
          if (this.settingColumns.includes(item.dataIndex)) {
            return true
          }
          return false
        })
        this.columns = cols;
      },
      //高级查询方法
      handleSuperQuery(arg) {
        if (!arg) {
          this.superQueryParams = ''
          this.superQueryFlag = false
        } else {
          this.superQueryFlag = true
          this.superQueryParams = JSON.stringify(arg)
        }
        this.loadData()
      },
      // 获取查询条件
      getQueryParams() {
        let sqp = {}
        if (this.superQueryParams) {
          sqp['superQueryParams'] = encodeURI(this.superQueryParams)
        }
        var param = Object.assign(sqp, this.queryParam, this.isorter);
        param.field = this.getQueryField();
        param.pageNo = this.ipagination.current;
        param.limit = this.ipagination.pageSize;
        return filterObj(param);
      },
      initDictConfig() {
        initDictOptions('	mes-tour-inspect-type').then((res) => {
          if (res.success) {
            this.$set(this.dictOptions, 'inspectStatus', res.data)
          }
        });

        initDictOptions('mes_is_qualified').then((res) => {
          if (res.success) {
            this.$set(this.dictOptions, 'inspectResult', res.data)
          }
        })
      },

      openPhUpBtn2(record){
        console.log(record)
        this.currentD = record;
        this.currentDetailPhObj = record.photoUrl;
        this.phUpVisible2 = true;

      },

      openPhReviewBtn2(record){
        this.dPhVisible = true;
        let obj = JSON.parse(record.photoUrl);
        this.dPhUrl = obj[0].filePath;
      },

      phUpSave2(){
        let data = {
          id:this.currentD.id,
          photoUrl:this.currentDetailPhObj
        }

        let r = this.currentD;
        postAction('/mes-quality/mesQcTourInspectTask/updateInspectProject',data).then(res=>{
          if(res.success){
            this.$message.success('操作成功!');
            this.phUpVisible2 = false;
            this.baseInfoData.mesQcTourinspLinemList[r.fKey-1].mesQcTourinspProjectsList[r.key-1].photoUrl = this.currentDetailPhObj;
          }else{
            this.$message.warning(res.msg)
          }
        })
      },


      clickThenSelect(record) {
        return {
          on: {
            click: () => {
              if(record.id){
                this.rowId = record.id;
              }

            },
            dblclick: () => {

              let id = record.id;
              getAction('/mes-quality/mesQcTourInspectTask/selectById',{id:id}).then(res=>{
                if (res.success) {
                  this.drawerVisible=true;
                  let data = res.data;
                  this.baseInfoData = data;

                } else {
                  this.$message.warning(res.msg);
                }
              })

            },

          }
        }
      },
      setRowClassName(record){
        //poros-table-row-hover
        return record.id === this.rowId ? 'clickRowStyl' : '';
      },
      onClearSelected() {
        this.selectedRowKeys = [];
        this.selectionRows = [];
        this.selectedMainId = ''
      },
      onSelectChange(selectedRowKeys, selectionRows) {
        this.selectedMainId = selectedRowKeys[0]
        this.selectedRowKeys = selectedRowKeys;
        this.selectionRows = selectionRows;
      },
      loadData(arg) {
        if (!this.url.list) {
          this.$message.error("请设置url.list属性!")
          return
        }
        //加载数据 若传入参数1则加载第一页的内容
        if (arg === 1) {
          this.ipagination.current = 1;
        }
        this.onClearSelected()
        var params = this.getQueryParams();//查询条件
        this.loading = true;
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            this.dataSource = res.data.records;
            console.log("表格数据", this.dataSource);
            this.ipagination.total = res.data.total;
          }
          if (res.code === 510) {
            this.$message.warning(res.msg)
          }
          this.loading = false;
        })
      },

      // 弹出窗组件
      showDemoModal() {
        this.$refs.modalCompon.modalShow();
      },
      // 点击btn获取数据
      btnGetData(tableName, title) {
        getAction(`${this.url.getColumns}`, {
          tableName: tableName
        }).then(
          res => {
            if (res.code == 0) {
              this.queryInfo = res.data.columns
              this.title = title
              this.dictOptions = res.data.dictOptions
              this.showDemoModal()
            } else {
              this.$message.warning(res.msg);
            }
          }
        )
      },

      //筛选分组
      getGroupTag(arrList) {
        let arr = [];
        var map = {},
          dest = [];
        arrList.forEach((item, index) => {
          if (item.groupTag) {
            arr.push(item);
          }
        });
        for (var i = 0; i < arr.length; i++) {
          var ai = arr[i];
          if (!map[ai.groupTag]) {
            dest.push({
              groupTag: ai.groupTag,
              name: ai.groupName,
              data: [ai]
            });
            map[ai.groupTag] = ai;
          } else {
            for (var j = 0; j < dest.length; j++) {
              var dj = dest[j];
              if (dj.groupTag == ai.groupTag) {
                dj.data.push(ai);
                break;
              }
            }
          }
        }
        this.groupTag = dest
        console.log(dest);
      },
      showLinkButton(item, record) {
        let btn = new ButtonExpHandler(item.exp, record);
        return btn.show;
      },
      initButtonList() {
        getAction(`${this.url.getColumns}8ac49ec7733bce480173514feb23010f`).then((res) => {
          console.log("--获取自定义按钮->>", res);
          if (res.success) {
            this.code = res.data.code;
            this.initCgButtonList(res.data.cgButtonList);
            this.initCgEnhanceJs(res.data.enhanceJs);
            this.getGroupTag(res.data.cgButtonList);
          } else {
            this.$message.warning(res.msg)
          }
        })
      },
      initCgEnhanceJs(enhanceJs) {
        //console.log("--onlineList-js增强",enhanceJs)
        if (enhanceJs) {
          let Obj = eval("(" + enhanceJs + ")");
          this.EnhanceJS = new Obj(getAction, postAction, deleteAction);
          this.cgButtonJsHandler('created')
        } else {
          this.EnhanceJS = ''
        }
      },
      initCgButtonList(btnList) {
        let linkArr = []
        let buttonArr = []
        if (btnList && btnList.length > 0) {
          for (let i = 0; i < btnList.length; i++) {
            let temp = btnList[i]
            if (temp.buttonStyle == 'button') {
              buttonArr.push(temp)
            } else if (temp.buttonStyle == 'link') {
              linkArr.push(temp)
            }
          }
        }
        this.cgButtonLinkList = [...linkArr]
        this.cgButtonList = [...buttonArr]
        // console.log("链接增强", this.cgButtonLinkList);
      },
      cgButtonJsHandler(buttonCode) {
        if (this.EnhanceJS[buttonCode]) {
          this.EnhanceJS[buttonCode](this)
        }
      },
      cgButtonActionHandler(buttonCode) {
        //处理自定义button的 需要配置该button自定义sql
        if (!this.selectedRowKeys || this.selectedRowKeys.length == 0) {
          this.$message.warning("请先选中一条记录")
          return false
        }
        if (this.selectedRowKeys.length > 1) {
          this.$message.warning("请只选中一条记录")
          return false
        }
        let params = {
          formId: this.code,
          buttonCode: buttonCode,
          dataId: this.selectedRowKeys[0]
        }
        console.log("自定义按钮请求后台参数：", params)
        postAction(this.url.buttonAction, params).then(res => {
          if (res.success) {
            this.loadData()
            this.$message.success("处理完成!")
          } else {
            this.$message.warning("处理失败!")
          }
        })

      },
      cgButtonLinkHandler(record, buttonCode, optType) {
        if (optType == "js") {
          if (this.EnhanceJS[buttonCode]) {
            this.EnhanceJS[buttonCode](this, record)
          }
        } else if (optType == "action") {
          let params = {
            formId: this.code,
            buttonCode: buttonCode,
            dataId: record.id
          }
          console.log("自定义按钮link请求后台参数：", params)
          postAction(this.url.buttonAction, params).then(res => {
            if (res.success) {
              this.loadData()
              this.$message.success("处理完成!")
            } else {
              this.$message.warning("处理失败!")
            }
          })
        }
      },

    }
  }
</script>
<style scoped>
  @import "~@assets/less/common.less";

  /deep/.clickRowStyl td{
    background:#00b4ed !important;
  }
  /deep/.ant-table-tbody>.clickRowStyl:hover>td {
    background-color:#00b4ed
  }
  .myImg{
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
  }
</style>